package com.object;

import com.Inter.DateTime_;
import java.sql.Time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


/* 本功能：获取本地时间、结束时间、持续时间
 *   使用时间包：calendat [ˈkæləndər]
 * */
public class DateTime implements DateTime_ {
    String endtime = null;
    Date end =null;

    @Override
    public String localtime() {
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        String localtime = sdf.format(date);
        //System.out.println("时间："+localtime);
        if (localtime != null) {
            return localtime;
        } else {
            System.out.println("时间获取失败");
        }
        return null;
    }

    // 结束时间：为当天的第二天的 23:59:59
    @Override
    public String endtime() {
        // 获取当前日期
        Calendar c = Calendar.getInstance();

        // 设置时间
        c.add(Calendar.DATE, 1);

        //获得年份
        int year = c.get(Calendar.YEAR);

        //获得月份
        int month = c.get(Calendar.MONTH) + 1;

        //获得日期
        int date = c.get(Calendar.DATE);

/*      //获得小时
        int hour = c.get(Calendar.HOUR_OF_DAY);

        //获得分钟
        int minute = c.get(Calendar.MINUTE);

        //获得秒
        int second = c.get(Calendar.SECOND);*/

        //获得星期几（注意（这个与Date类是不同的）：1代表星期日、2代表星期1、3代表星期二，以此类推）
        int day = c.get(Calendar.DAY_OF_WEEK);

        // 格式化输出
        endtime = String.format("%d-%d-%d %d:%d:%d", year, month, date, 23, 59, 13);

        if (endtime != null) {
            return endtime;
        } else {
            System.out.println("时间获取失败");
        }

        return null;
    }


    // 此为结束时间 - 本地时间
    @Override
    public int durationhour() {
        // 获取本地时间
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            end = sdf.parse(endtime);
            //System.out.println(end);
        } catch (Exception e) {
            e.printStackTrace();
        }
        long StartTime=date.getTime();
        long EnddTime=end.getTime();
        //System.out.println("EndTime"+EnddTime);
        //System.out.println("StartTime"+StartTime);
        Long gap= EnddTime-StartTime;
        // 计算公式 1s = 1000ms; 1min = 60s; 1h=60min; 1h=60*60*1000
        int TimePoor = (int) (gap/(60*60*1000));
        if (TimePoor>0){
            return TimePoor;
        }else {
            System.out.println("时间错误");
        }
        return 0;
    }
}
